Release 10.1A: OpenEdge Development:
Progress Dynamics Advanced Development


Preface

This Preface contains the following sections:

Purpose

This handbook provides information about various programming topics in Progress Dynamics®. Use it along with OpenEdge Development: Progress Dynamics Basic Development as a guide and reference to programming with Progress Dynamics.

Audience

This guide is designed for any developer familiar with the Progress® 4GL who is interested in building a new Progress application, or rearchitecting an existing application to bring it to a distributed GUI environment.

Organization

This book is organized in the following manner:

Chapter 1 "Writing Super Procedures for Progress Dynamics Objects"

Describes how to create custom super procedures for dynamic client-side objects, including the kind of code and programming style to use, and introduces an API to simplify the code you write. There is also discussion of dynamic User Interface events, and of Web development considerations.

Chapter 2 "Customizing Classes"

Explains how to extend the Progress Dynamics class hierarchy by adding your own custom classes. Also describes the Class Maintenance tool.

Chapter 3 "Advanced User Interface Design in Progress Dynamics"

Describes a single folder window that illustrates many of the features that support building complex windows and customizing behavior to suit the needs of your application. There is also a discussion of various techniques to use to take advantage of new features.

Chapter 4 "Caching Application Data on the Client"

Shows how to take advantage of various framework features to cache application data.

Chapter 5 "Using ADM2 Properties and Methods in Progress Dynamics"

Provides an overview of the properties and methods of the Application Development Model that are essential to Progress Dynamics application builders. It also provides guidance on how properties and methods are typically used.

Chapter 6 "Using the Progress Dynamics Managers"

Explains the role of Progress Dynamics managers, which are a set of service procedures that support a wide range of application needs. There is a brief overview of the Managers, a description of how they are constructed, and some guidelines on how to use specific Manager API calls in your applications. In addition, there are some examples designed to give you a better understanding of how to use the Mangers to provide support for special needs that they do not take care of automatically.

Chapter 7 "Creating a New Manager in Progress Dynamics"

Details the new template procedures and how you can use them to create managers of your own for your applications.

Chapter 8 "Understanding the Object Tables in the Progress Dynamics Repository"

Describes the Progress Dynamics Repository tables and their fields in detail in order to provide you with a complete understanding of the Repository database.

Typographical conventions

This manual uses the following typographical conventions:

Convention
Description
Bold
Bold typeface indicates commands or characters the user types, provides emphasis, or the names of user interface elements.
Italic
Italic typeface indicates the title of a document, or signifies new terms.
SMALL, BOLD CAPITAL LETTERS
Small, bold capital letters indicate OpenEdge® key functions and generic keyboard keys; for example, GET and CTRL.
KEY1+KEY2
A plus sign between key names indicates a simultaneous key sequence: you press and hold down the first key while pressing the second key. For example, CTRL+X.
KEY1 KEY2
A space between key names indicates a sequential key sequence: you press and release the first key, then press another key. For example, ESCAPE H.
Syntax:
Fixed width
A fixed-width font is used in syntax statements, code examples, system output, and filenames.
Fixed-width italics
Fixed-width italics indicate variables in syntax statements.
Fixed-width bold
Fixed-width bold indicates variables with special emphasis.
UPPERCASE 
fixed width 
Uppercase words are Progress® 4GL language keywords. Although these are always shown in uppercase, you can type them in either uppercase or lowercase in a procedure.
 
This icon (three arrows) introduces a multi-step procedure.
 
This icon (one arrow) introduces a single-step procedure.
Period (.)
or
colon (:)
All statements except DO, FOR, FUNCTION, PROCEDURE, and REPEAT end with a period. DO, FOR, FUNCTION, PROCEDURE, and REPEAT statements can end with either a period or a colon.
[ ]
Large brackets indicate the items within them are optional.
[ ]
Small brackets are part of the Progress 4GL language.
{ }
Large braces indicate the items within them are required. They are used to simplify complex syntax diagrams.
{ }
Small braces are part of the Progress 4GL language. For example, a called external procedure must use braces when referencing arguments passed by a calling procedure.
|
A vertical bar indicates a choice.
...
Ellipses indicate repetition: you can choose one or more of the preceding items.

Examples of syntax descriptions

In this example, ACCUM is a keyword, and aggregate and expression are variables:

Syntax
ACCUM aggregate expression  

FOR is one of the statements that can end with either a period or a colon, as in this example:

FOR EACH Customer: 
  DISPLAY Name. 
END. 

In this example, STREAM stream, UNLESS-HIDDEN, and NO-ERROR are optional:

Syntax
DISPLAY [ STREAM stream ] [ UNLESS-HIDDEN ] [ NO-ERROR ] 

In this example, the outer (small) brackets are part of the language, and the inner (large) brackets denote an optional item:

Syntax
INITIAL [ constant [ , constant ] ] 

A called external procedure must use braces when referencing compile-time arguments passed by a calling procedure, as shown in this example:

Syntax
{ &argument-name } 

In this example, EACH, FIRST, and LAST are optional, but you can choose only one of them:

Syntax
PRESELECT [ EACH | FIRST | LAST ] record-phrase 

In this example, you must include two expressions, and optionally you can include more. Multiple expressions are separated by commas:

Syntax
MAXIMUM ( expression , expression [ , expression ] ... ) 

In this example, you must specify MESSAGE and at least one expression or SKIP [ (n) ], and any number of additional expression or SKIP [ ( n ) ] is allowed:

Syntax
MESSAGE { expression | SKIP [ ( n ) ] } ... 

In this example, you must specify {include-file, then optionally any number of argument or &argument-name = "argument-value", and then terminate with }:

Syntax
{ include-file 
    [ argument | &argument-name = "argument-value" ] ... } 

Long syntax descriptions split across lines

Some syntax descriptions are too long to fit on one line. When syntax descriptions are split across multiple lines, groups of optional and groups of required items are kept together in the required order.

In this example, WITH is followed by six optional items:

Syntax
WITH [ ACCUM max-length ] [ expression DOWN ] 
  [ CENTERED ] [ n COLUMNS ] [ SIDE-LABELS ]
  [ STREAM-IO ] 

Complex syntax descriptions with both required and optional elements

Some syntax descriptions are too complex to distinguish required and optional elements by bracketing only the optional elements. For such syntax, the descriptions include both braces (for required elements) and brackets (for optional elements).

In this example, ASSIGN requires either one or more field entries or one record. Options available with field or record are grouped with braces and brackets:

Syntax
ASSIGN   { [ FRAME frame ] { field [ = expression ] }
            [ WHEN expression ] } ...
       | { record [ EXCEPT field ... ] } 

Example procedures

This manual provides numerous example procedures that illustrate syntax and concepts. You can access the example files and details for installing the examples from the following locations:

After you have installed the examples, you can find the samples for Dynamics Advanced Development in the following location:

Doc_and_Samples_Install/src/prodoc/dynamics/ 

OpenEdge messages

OpenEdge displays several types of messages to inform you of routine and unusual occurrences:

After displaying a message, OpenEdge proceeds in one of several ways:

OpenEdge messages end with a message number in parentheses. In this example, the message number is 200:

** Unknown table name table. (200) 

If you encounter an error that terminates OpenEdge, note the message number before restarting.

Obtaining more information about OpenEdge messages

In Windows platforms, use OpenEdge online help to obtain more information about OpenEdge messages. Many OpenEdge tools include the following Help menu options to provide information about messages:


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095